/*
 *  classifier.h
 *  Classifier
 *
 *  Daniel Wojcik
 *
 */
 
#ifndef classifier_h_
#define classifier_h_

#include <map>
#include "dlib/svm.h"

//Class category
//0 date (will compute average error)
//1 subject
#define category 0

//Relevancy parameters
#define minKeep 1000
#define supportScale 300
#define minIDF 0.1

//Term scoring parameter
#define scalar 500

//Characterization parameter
#define topK 500

//Total number of classes (must be at least 1)
#define classTypes 3

//Clustering algorithm to use.
//0 is none, classifying based only on class comparisons
//1 is K-Neighbors
//2 is SVM
//3 is Jaccard Coefficients
#define clusMet 2



//Clustering algorithm parameters
#define nearK 2
#define mergeClusters 1
#define maxD 250000
#define penalty 1000

//SVM parameters
//default lambda is 0.0001
//default tolerance is 0.01
//default maxVect is 40
#define lambda 0.001
#define maxVect 40
#define tol 0.01

//Don't change the map type, but the kernel is
//declared here to allow easy changing of the kernel
typedef std::map<std::string,double> sample_type;
typedef dlib::sparse_sigmoid_kernel<sample_type> kernel_type;
//Options: polynomial, radial_basis, sigmoid

#endif
